package org.example;

import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.win32.StdCallLibrary;
  
public interface User32 extends StdCallLibrary {  
    User32 INSTANCE = (User32) Native.load("user32", User32.class);  
  
    // MessageBox 的声明，参数类型需要根据你的需要调整  
    // 第一个参数是HWND，表示父窗口句柄，NULL表示没有父窗口  
    // 第二个参数是字符串，表示消息框的内容  
    // 第三个参数是字符串，表示消息框的标题  
    // 第四个参数是整型，表示消息框的样式（比如MB_OK, MB_OKCANCEL等）  
    int MessageBox(Pointer hWnd, String text, String caption, int type);
  
    // 注意：上面的java.awt.Pointer是为了示例，实际应该使用com.sun.jna.ptr.IntByReference或null（对于HWND）  
    // 但对于HWND为null的情况，我们可以直接传递null或0（在C中HWND为NULL通常表示为0）  
  
    // 更准确的声明（使用JNA的Pointer和IntByReference，但HWND为null时直接用0）  
    int MessageBox(int hWnd, String text, String caption, int type);  
  
    // 示例中使用的常量（这些常量需要根据你的需要定义，或者从某个库中获取）  
    int MB_OK = 0x00000000;  
  
    public static void main(String[] args) {  
        // 调用MessageBox显示消息框  
        User32.INSTANCE.MessageBox(0, "Hello, World!", "JNA MessageBox", MB_OK);  
    }  
}